package com.highway2urhell.transformer; import javassist.CtClass; import javassist.CtMethod; public class JmsQueueTransformer extends AbstractLeechTransformer { public JmsQueueTransformer() { super("javax/naming/InitialContexty"); addImportPackage("java.util", "java.util.Map", "javax.jms.Queue", "javax.jms.JMSException"); } @Override protected void doTransform(CtClass cc) throws Exception { CtMethod c = cc.getMethod("init", "(Ljava.util.Hashtable;)V"); String h2hHookCode = "" + "List listEntryPath = new ArrayList();" + "Iterator iter = myProps.entrySet().iterator();" + "while (iter.hasNext()) {" + " java.util.Map.Entry element = (java.util.Map.Entry) iter.next();" + " String key = (String) element.getValue();" + " Object obj = lookup(key);" + " if (obj instanceof javax.jms.Queue) {" + " javax.jms.Queue queueTmp = (Queue) obj;" + " EntryPathData entry = new EntryPathData();" + " entry.setMethodName(\"no-method\");" + " entry.setClassName(\"queue-jms\");" + " entry.setTypePath(TypePath.DYNAMIC);" + " entry.setAudit(false);" + " try {" + " entry.setUri(queueTmp.getQueueName());" + " } catch (JMSException e) {" + " entry.setUri(\"queue\");" + " e.printStackTrace();" + " }" + " listEntryPath.add(entry);" + " }" + "}" + "CoreEngine.getInstance().getFramework(\"JMS_11_CTX\").receiveData(listEntryPath);"; c.insertAfter(h2hHookCode); } }